#ifndef __UDP_HOST_H
#define __UDP_HOST_H

#include "User_App.h"

#define UDP_delay(ms) LL_mDelay(ms) // 延时函数

typedef enum
{
    SHUT_s = 0x00, // 关闭
    OPEN_s = 0x01, // 打开
} SWITCH_E;

typedef enum
{
    UDP_ERR = 0,      // 错误
    UDP_OK = 1,       // 成功
    UDP_ERR_CRC = 2,  // CRC校验错误
    UDP_ERR_CMD = 3,  // 命令字错误
    UDP_ERR_WRITE,    // 写错误
    UDP_Normal_Leave, // 正常退出
} UDP_ERR_TYPEDEF;

// 数据帧格式
typedef struct
{
    uint8_t u_Head;        // 帧头
    uint8_t u_URL;         // 地址
    uint8_t u_DataLen;     // 数据长度
    uint8_t u_CMD;         // 命令字
    uint8_t u_DataBuf[32]; // 数据
    uint8_t u_CRC8;        // 校验
} UDP_DataFrame_Typedef;

UDP_ERR_TYPEDEF UDP_ReadAllData(uint8_t *data, uint8_t again);  // 读取全部数据
UDP_ERR_TYPEDEF UDP_SetProbe_EN(SWITCH_E value, uint8_t again); // 金属探测 打开关闭
UDP_ERR_TYPEDEF UDP_SetObey_EN(SWITCH_E value, uint8_t again);  // 设置下位机MCU的状态 MCu打开后带电检测运行
void Ti_UDP_ReadAllData_event(void);

void UDP_Debug(void);

#endif
